Digital video recorders (DVRs) (also known as personal video recorders (PVRs)) provide flexible features for recording and playing back audiovisual programming (e.g., television programs). DVR users are able to record programming content to hard disc drives (HDDs) and later play back the recorded content as desired. Because the content being played back is accessed from a local data store, DVR users are able to fast-forward, rewind, pause, and skip programming content. Further, DVR users are able to view content in slow motion, or even rapidly jump forward or backward though the content to desired points in programs. Such DVR playback features are commonly referred to as trick play modes and allow DVR users to play back recorded programs at selected speeds in forward or reverse directions.
The programming content recorded and played back by DVRs is typically in the form of Motion Pictures Expert Group Two (MPEG-2) streams (e.g., program or transport streams), which carry video content in sequentially ordered picture frames commonly referred to as elementary video streams. The picture frames include several different types of picture frames, such as I, B, and P frames. In MPEG-2 video streams, B and P type frames are positioned between I-frames to form groups of frames known as Groups of Pictures (GOPs). A GOP typically includes an I-frame and sequentially subsequent B and P frames up to the next I-frame in the video stream (e.g., see (250) of FIG. 2). The number of frames in a GOP defines the size, or length, of the GOP.
Of I, B, and P picture frames, only the video data content of I-frames can be reconstructed independently of other picture frames. Several trick play modes, referred to as I-frame trick modes, utilize this attribute of I-frames by processing and displaying only the I-frames of an MPEG-2 video stream. That is, DVRs utilizing I-frame trick play modes present only the video content contained in the I-frames for display during I-frame trick mode playback. Because I-frames make up only a small portion of the total frames in MPEG-2 video streams, I-frame trick play modes enable high-speed playback functions (e.g., high-speed fast forward or rewind), as well as functions for jumping forward or backward over large amounts of recorded programming content.
However, conventional I-frame trick play modes cannot maintain a selected playback speed when the GOP size varies during trick mode playback. Unfortunately, many different events can cause GOP size to vary within MPEG-2 video streams. For example, transitions of programming content from high-definition (HD) content to standard-definition (SD) content (and vice versa) are common occurrences that cause GOP sizes to vary. Further, the insertion of commercials into programming content can also cause GOP sizes to change.
As a result, when a recorded MPEG-2 video stream is played back with an I-frame trick mode, any changes in GOP size during playback undesirably causes the selected trick mode playback speed to vary. For example, if a viewer selects a trick mode play speed of fifteen times (15×) normal speed, playback speed parameters are typically set based on the GOP size of the first GOP to be played back in the trick mode. If the GOP size changes during playback, the trick mode play speed will not be maintained at 15×, which can cause a host of problems, including unpredictable quality of service (QoS) levels. For example, a user may easily have a negative experience if the selected trick mode playback speed drastically changes without any user input. Such negative experiences may be intensified by the presence of an on-screen playback progress bar, which provides a graphical representation of the selected trick mode type, the playback location in a recorded program, and the speed at which the recorded program is being traversed by the selected trick play mode. Thus, it would be desirable to maintain trick mode play speeds, especially when GOP size varies during trick mode playback.